home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / frefs11.lha / FetchRefs / Rexx / GoFetchRefs.dme < prev    next >
Text File  |  1994-10-28  |  2KB  |  83 lines

  1. /*   $VER: GoFetchRexx.dme 1.1 (28.10.94)
  2. **
  3. **   ARexx script for DME to invoke FetchRefs.
  4. */
  5.  
  6. /* Static part of the editor's ARexx port name. That is, the name before any
  7.  * suffixes (like '.1') are appended.
  8.  */
  9. editorname = 'DME'
  10.  
  11. OPTIONS RESULTS
  12. OPTIONS FAILAT 11
  13.  
  14. /* Quit if we're not called from the editor. */
  15. caller = ADDRESS()
  16. IF (LEFT(caller, LENGTH(editorname)) ~= editorname) then
  17.     EXIT 10
  18.  
  19. /* Get the function name from editor (get current word). */
  20. "scanf '%[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_#?]s'"
  21. "setenv func $scanf"
  22.  
  23. ok = OPEN('Env', 'ENV:func')
  24. function = READLN('Env')
  25. ok = CLOSE('Env')
  26. "unsetenv func"
  27.  
  28. /* Define a temporary filename to put the reference into */
  29. cutat = VERIFY(function, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_")
  30. if cutat > 0 THEN
  31.     basename = LEFT(function, cutat - 1)
  32. ELSE
  33.     basename = function
  34.  
  35. filename = 'T:FR_'basename
  36.  
  37. /* It doesn't matter whether we want a taglist, varargs og whatever function */
  38. IF RIGHT(function, 7) = "TagList" THEN
  39.     function = LEFT(function, LENGTH(function) - 7)
  40. ELSE IF RIGHT(function, 4) = "Tags" THEN
  41.     function = LEFT(function, LENGTH(function) - 4)
  42. ELSE IF RIGHT(function, 1) = "A" THEN
  43.     function = LEFT(function, LENGTH(function) - 1)
  44.  
  45. /* Now actually get the reference */
  46. ADDRESS 'FETCHREFS'
  47. FR_GET function || '(%|Tags|TagList|A)' filename CASE FILEREF
  48. gotoline = rc2
  49.  
  50. /* Address editor again to load the file */
  51. ADDRESS VALUE caller
  52.  
  53. IF rc~=0 THEN DO
  54.         /* Skip if the error was '...!' (actually 'Aborted!'). This occours
  55.          * whenever the 'select from what file' window is closed, which is
  56.          * not really an error.
  57.          */
  58.         IF RIGHT(rc2, 1)='!' THEN
  59.             EXIT 0
  60.  
  61.         /* Report the error (obtained from FetchRefs) in the editor. */
  62.         Title '('RC2')'
  63.  
  64.         EXIT 0
  65. END
  66. ELSE DO
  67.         /* Make the editor open a new window and load the autodoc into it. */
  68.         "NewWindow"
  69.         "NewFile" filename
  70.  
  71.         /* If FetchRefs provided us with a goto line (it does for .h files
  72.          * only - as it only makes sense for them) then we jump to that line.
  73.          */
  74.         IF gotoline ~= 0 THEN
  75.             Goto gotoline
  76.  
  77.         /* Delete the autodoc file */
  78.         ADDRESS COMMAND 'C:Delete >NIL:' filename
  79.  
  80.         EXIT 0
  81. END
  82.  
  83.